<template>
  <div class="hello">
    <h2>我是首页</h2>
    <h1>{{ msg }}</h1>
    <!-- 使用子路由并显示  1是helloWorld的路由 也就是父路由 (完整路径)/不能漏-->
    <router-link to="/1/hwnews">新闻</router-link>
    <router-link to="/1/hwmessages">消息</router-link>
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App',
      //path是会随页面你的变化而发生变化
      path:"/1/hwnews"
    }
  },
  //创建组件时回调
  created() {
      console.log("created");
      //导航守卫
      // document.title = "HelloWorld"
  },
  //在这个页面跳到其他页面时触发
  destroyed() {
      console.log("destroyed")
  },
  //template挂载到dom上回调的
 /* mounted() {

  },*/
  //activated&&deactivated进入||离开页面时触发(页面活跃时) 这个函数必须 该组件被keep-alive包起来才有用
  activated() {
    console.log("activated");
    //进入/1/hwnews||hwmessages 与此同时去除子里面的默认跳转路由, 替代了子的默认跳转路由★★★★
    this.$router.push(this.path)
  },
  // 离开页面时触发  (页面不活跃时)
/*  deactivated() {
     this.path = this.$router.push(this.path)
  },*/
  //组件内导航守卫(与此同时去除子里面的默认跳转路由)
  beforeRouteLeave(from,to,next){
    //记录上一次离开的path
    //保存当前route(每次回来的时候保证是原来的页面★★★)
    console.log(this.$route.path);
    this.path = this.$route.path;
    //必须调next
    next();
  },
  //页面发生刷新时回调
  updated() {

  }

}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>
